using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[System.Serializable]
public class ResultModel:ISerializationCallbackReceiver{
    /*所有网络返回的数据加在这之下*/
    public TestModel exchangeCodeChange;
    //如果这个change要当作要给事件去监听那就要写下面这个(暂时这样，没找到更好的方式)
    public TestModel NCExchangeCodeChange{
        get{
            return exchangeCodeChange;
        }
    }
    /*所有网络返回的数据加在这之上*/
    
    /*
     * 在序列化后回调
     */
    public void OnAfterDeserialize()
    {
        OnEvent();
    }
    /*
     * 在序列化前回调
     */
    public void OnBeforeSerialize()
    {
        
    }
    //事件派发
    private void OnEvent(){
        //通过反射获取属性名称，进行事件派发
        var propertyInfo = this.GetType().GetProperties();
        foreach (System.Reflection.PropertyInfo p in propertyInfo)
        {
            //不为null说明有对应的值
            var val = p.GetValue(this,null);
            if(val != null) Dispatcher.Instance.DispatchEvent(p.Name,val);
        }
    }
}